home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / utility / pgp20.zip / PGPDOC2.DOC < prev    next >
Text File  |  1992-09-03  |  99KB  |  1,995 lines

  1.  
  2.      PGPDOC2.TXT           Thursday, September  3, 1992 2:07 am           Page 1
  3.  
  4.  
  5.                           Phil's Pretty Good Software
  6.                                     Presents
  7.       
  8.                                       ===
  9.                                       PGP
  10.                                       ===
  11.       
  12.                               Pretty Good Privacy
  13.                       Public Key Encryption for the Masses
  14.       
  15.       
  16.                            -------------------------
  17.                                 PGP User's Guide
  18.                            Volume II: Special Topics
  19.                            -------------------------
  20.                               by Philip Zimmermann
  21.                                 Revised 1 Sep 92
  22.       
  23.       
  24.                            PGP Version 2.0 - 1 Sep 92
  25.                               Software Written by
  26.                                Philip Zimmermann
  27.                                       with
  28.                 Hal Finney, Branko Lankester, and Peter Gutmann
  29.       
  30.       
  31.       
  32.       
  33.      Synopsis:  PGP uses public-key encryption to protect E-mail and data
  34.      files.  Communicate securely with people you've never met, with no
  35.      secure channels needed for prior exchange of keys.  PGP is well
  36.      featured and fast, with sophisticated key management, digital
  37.      signatures, data compression, and good ergonomic design.
  38.       
  39.       
  40.      Software and documentation (c) Copyright 1990-1992 Philip Zimmermann. 
  41.      For information on PGP licensing, distribution, copyrights, patents,
  42.      trademarks, liability limitations, and export controls, see the
  43.      "Legal Issues" section.
  44.       
  45.       
  46.  
  47.      PGPDOC2.TXT           Thursday, September  3, 1992 2:07 am           Page 2
  48.  
  49.  
  50.       
  51.      Contents
  52.      ========
  53.       
  54.      Quick Overview
  55.      Special Topics
  56.        Separating Signatures from Messages
  57.        Decrypting the Message and Leaving the Signature on it
  58.        Sending ASCII Text Files Across Different Machine Environments
  59.        Leaving No Traces of Plaintext on the Disk
  60.        Displaying Decrypted Plaintext on Your Screen
  61.        Making a Message For Her Eyes Only
  62.        Preserving the Original Plaintext Filename
  63.        Editing Your User ID or Pass Phrase
  64.        Editing the Trust Parameters for a Public Key
  65.        Checking If Everything is OK on Your Public Key Ring
  66.        Using PGP as a Unix-style Filter
  67.        PGP Returns Exit Status to the Shell
  68.        Environmental Variable for Pass Phrase
  69.        Setting Configuration Parameters: CONFIG.TXT
  70.          TMP - Directory Pathname for Temporary Files
  71.          LANGUAGE - Foreign Language Selector
  72.          MYNAME - Default User ID for Making Signatures
  73.          TEXTMODE - Assuming Plaintext is a Text File
  74.          CHARSET - Specifies Local Character Set for Text Files
  75.          ARMOR - Enable ASCII Armor Output
  76.          ARMORLINES - Size of ASCII Armor Multipart Files
  77.          KEEPBINARY - Keep Binary Ciphertext Files After Decrypting
  78.          VERBOSE - Enable Verbose Mode
  79.          COMPRESS - Enable Compression
  80.          BAKRING - Filename for Backup Secret Keyring
  81.          COMPLETES_NEEDED - Number of Completely Trusted Introducers Needed
  82.          MARGINALS_NEEDED - Number of Marginally Trusted Introducers Needed
  83.          CERT_DEPTH - How Deep May Introducers Be Nested
  84.          PAGER - Selects Shell Command to Display Plaintext Output
  85.          SHOWPASS - Echo Pass Phrase to User
  86.          TZFIX - Timezone Adjustment
  87.        Protecting Against Bogus Timestamps
  88.        A Peek Under the Hood
  89.          Random Numbers
  90.          PGP's Conventional Encryption Algorithm
  91.          Data Compression
  92.          Message Digests and Digital Signatures
  93.        Compatibility with Previous Versions of PGP
  94.      Vulnerabilities
  95.        Compromised Pass Phrase and Secret Key
  96.        Public Key Tampering
  97.        "Not Quite Deleted" Files
  98.        Viruses and Trojan Horses
  99.        Physical Security Breach
  100.        Tempest Attacks
  101.        Exposure on Multi-user Systems
  102.        Traffic Analysis
  103.        Cryptanalysis
  104.      Legal Issues
  105.        Trademarks, Copyrights, and Warranties
  106.  
  107.      PGPDOC2.TXT           Thursday, September  3, 1992 2:07 am           Page 3
  108.  
  109.  
  110.        Patent Rights on the Algorithms
  111.        Licensing and Distribution
  112.        Export Controls
  113.      Recommended Readings
  114.      To Contact the Author
  115.       
  116.       
  117.  
  118.      PGPDOC2.TXT           Thursday, September  3, 1992 2:07 am           Page 4
  119.  
  120.  
  121.       
  122.      Quick Overview
  123.      =============
  124.       
  125.      Pretty Good(tm) Privacy (PGP), from Phil's Pretty Good Software, is a
  126.      high security cryptographic software application for MSDOS, Unix,
  127.      VAX/VMS, and other computers.  PGP combines the convenience of the
  128.      Rivest-Shamir-Adleman (RSA) public key cryptosystem with the speed of
  129.      conventional cryptography, message digests for digital signatures,
  130.      data compression before encryption, good ergonomic design, and
  131.      sophisticated key management. 
  132.       
  133.      This volume II of the PGP User's Guide covers advanced topics about
  134.      PGP that were not covered in the "PGP User's Guide, Volume I:
  135.      Essential Topics".  You should first read the Essential Topics
  136.      volume, or this manual won't make much sense to you.  Reading this
  137.      Special Topics volume is optional.
  138.       
  139.       
  140.       
  141.      Special Topics
  142.      ===============
  143.       
  144.      Separating Signatures from Messages
  145.      -----------------------------------
  146.       
  147.      Normally, signature certificates are physically attached to the text
  148.      they sign.  This makes it convenient in simple cases to check
  149.      signatures.  It is desirable in some circumstances to have signature
  150.      certificates stored separately from the messages they sign.  It is
  151.      possible to generate signature certificates that are detached from
  152.      the text they sign.  To do this, combine the 'b' (break) option with
  153.      the 's' (sign) option.  For example:
  154.       
  155.          pgp -sb letter.txt
  156.       
  157.      This example produces an isolated signature certificate in a file
  158.      called "letter.sig".  The contents of letter.txt are not appended to
  159.      the signature certificate.
  160.       
  161.      After creating the signature certificate file (letter.sig in the
  162.      above example), send it along with the original text file to the
  163.      recipient.  The recipient must have both files to check the signature
  164.      integrity.  When the recipient attempts to process the signature
  165.      file, PGP notices that there is no text in the same file with the
  166.      signature and prompts the user for the filename of the text. Only
  167.      then can PGP properly check the signature integrity.  If the
  168.      recipient knows in advance that the signature is detached from the
  169.      text file, she can specify both filenames on the command line:
  170.       
  171.          pgp letter.sig letter.txt
  172.      or: pgp letter letter.txt
  173.       
  174.      PGP will not have to prompt for the text file name in this case.
  175.       
  176.      A detached signature certificate is useful if you want to keep the
  177.  
  178.      PGPDOC2.TXT           Thursday, September  3, 1992 2:07 am           Page 5
  179.  
  180.  
  181.      signature certificate in a separate certificate log.  A detached
  182.      signature of an executable program is also useful for detecting a
  183.      subsequent virus infection.  It is also useful if more than one party
  184.      must sign a document such as a legal contract, without nesting
  185.      signatures.  Each person's signature is independent.
  186.       
  187.      If you receive a ciphertext file that has the signature certificate
  188.      glued to the message, you can still pry the signature certificate
  189.      away from the message during the decryption.  You can do this with
  190.      the -b option during decrypt, like so:
  191.       
  192.          pgp -b letter
  193.       
  194.      This decrypts the letter.pgp file and if there is a signature in it,
  195.      PGP checks the signature and detaches it from the rest of the
  196.      message, storing it in the file letter.sig.
  197.       
  198.       
  199.      Decrypting the Message and Leaving the Signature on it
  200.      ------------------------------------------------------
  201.       
  202.      Usually, you want PGP to completely unravel a ciphertext file,
  203.      decrypting it and checking the nested signature if there is one,
  204.      peeling away the layers until you are left with only the original
  205.      plaintext file.
  206.       
  207.      But sometimes you want to decrypt an encrypted file, and leave the
  208.      inner signature still attached, so that you are left with a decrypted
  209.      signed message.  This may be useful if you want to send a copy of a
  210.      signed document to a third party, perhaps re-enciphering it.  For
  211.      example, suppose you get a message signed by Charlie, encrypted to
  212.      you.  You want to decrypt it, and, leaving Charlie's signature on it,
  213.      you want to send it to Alice, perhaps re-enciphering it with Alice's
  214.      public key.  No problem.  PGP can handle that.
  215.       
  216.      To simply decrypt a message and leave the signature on it intact,
  217.      type:
  218.       
  219.          pgp -d letter
  220.       
  221.      This decrypts letter.pgp, and if there is an inner signature, it is
  222.      left intact with the decrypted plaintext in the output file.
  223.       
  224.      Now you can archive it, or maybe re-encrypt it and send it to someone
  225.      else.
  226.       
  227.       
  228.       
  229.      Sending ASCII Text Files Across Different Machine Environments
  230.      --------------------------------------------------------------
  231.       
  232.      You may use PGP to encrypt any kind of plaintext file, binary 8-bit
  233.      data or ASCII text.  Probably the most common usage of PGP will be for
  234.      E-mail, when the plaintext is ASCII text.  
  235.       
  236.      ASCII text is sometimes represented differently on different
  237.  
  238.      PGPDOC2.TXT           Thursday, September  3, 1992 2:07 am           Page 6
  239.  
  240.  
  241.      machines.  For example, on an MSDOS system, all lines of ASCII text
  242.      are terminated with a carriage return followed by a linefeed.  On a
  243.      Unix system, all lines end with just a linefeed.  On a Macintosh, all
  244.      lines end with just a carriage return.  This is a sad fact of life.
  245.       
  246.      Normal unencrypted ASCII text messages are often automatically
  247.      translated to some common "canonical" form when they are transmitted
  248.      from one machine to another.  Canonical text has a carriage return
  249.      and a linefeed at the end of each line of text.  For example, the
  250.      popular KERMIT communication protocol can convert text to canonical
  251.      form when transmitting it to another system.  This gets converted
  252.      back to local text line terminators by the receiving KERMIT.  This
  253.      makes it easy to share text files across different systems.
  254.       
  255.      But encrypted text cannot be automatically converted by a
  256.      communication protocol, because the plaintext is hidden by
  257.      encipherment.  To remedy this inconvenience, PGP lets you specify
  258.      that the plaintext should be treated as ASCII text (not binary data)
  259.      and should be converted to canonical text form before it gets
  260.      encrypted.  At the receiving end, the decrypted plaintext is
  261.      automatically converted back to whatever text form is appropriate for
  262.      the local environment.
  263.       
  264.      To make PGP assume the plaintext is text that should be converted to
  265.      canonical text before encryption, just add the "t" option when
  266.      encrypting or signing a message, like so:
  267.       
  268.         pgp -et message.txt her_userid
  269.       
  270.      This mode is automatically turned off if PGP detects that the
  271.      plaintext file contains what it thinks is non-text binary data.
  272.       
  273.      For PGP users that use non-English 8-bit character sets, when PGP 
  274.      converts text to canonical form, it may convert data from the local
  275.      character set into the LATIN1 (ISO 8859-1 Latin Alphabet 1) character
  276.      set, depending on the setting of the CHARSET parameter in the PGP
  277.      configuration file.  LATIN1 is a superset of ASCII, with extra
  278.      characters added for many European languages.
  279.       
  280.       
  281.       
  282.      Leaving No Traces of Plaintext on the Disk
  283.      ------------------------------------------
  284.       
  285.      After PGP makes a ciphertext file for you, you can have PGP
  286.      automatically overwrite the plaintext file and delete it, leaving no
  287.      trace of plaintext on the disk so that no one can recover it later
  288.      using a disk block scanning utility.  This is useful if the plaintext
  289.      file contains sensitive information that you don't want to keep
  290.      around.
  291.       
  292.      To wipe out the plaintext file after producing the ciphertext file,
  293.      just add the "w" (wipe) option when encrypting or signing a message,
  294.      like so:
  295.       
  296.          pgp -esw message.txt her_userid
  297.  
  298.      PGPDOC2.TXT           Thursday, September  3, 1992 2:07 am           Page 7
  299.  
  300.  
  301.       
  302.      This example creates the ciphertext file "message.pgp", and the 
  303.      plaintext file "message.txt" is destroyed beyond recovery.
  304.       
  305.      Obviously, you should be careful with this option.  Also note that
  306.      this will not wipe out any fragments of plaintext that your word
  307.      processor might have created on the disk while you were editing the
  308.      message before running PGP.  Most word processors create backup
  309.      files, scratch files, or both.  Also, it overwrites the file only
  310.      once, which is enough to thwart conventional disk recovery efforts,
  311.      but not enough to withstand a determined and sophisticated effort to
  312.      recover the faint magnetic traces of the data using special disk
  313.      recovery hardware.
  314.       
  315.       
  316.       
  317.      Displaying Decrypted Plaintext on Your Screen
  318.      ---------------------------------------------
  319.       
  320.      To view the decrypted plaintext output on your screen (like the
  321.      Unix-style "more" command), without writing it to a file, use the -m
  322.      (more) option while decrypting:
  323.       
  324.           pgp -m ciphertextfile
  325.       
  326.      This displays the decrypted plaintext display on your screen one
  327.      screenful at a time.
  328.       
  329.       
  330.       
  331.      Making a Message For Her Eyes Only
  332.      ----------------------------------
  333.       
  334.      To specify that the recipient's decrypted plaintext will be shown
  335.      ONLY on her screen and cannot be saved to disk, add the -m option:
  336.       
  337.           pgp -sem message.txt her_userid
  338.       
  339.      Later, when the recipient decrypts the ciphertext with her secret key
  340.      and pass phrase, the plaintext will be displayed on her screen but
  341.      will not be saved to disk.  The text will be displayed as it would if
  342.      she used the Unix "more" command, one screenful at a time.  If she
  343.      wants to read the message again, she will have to decrypt the
  344.      ciphertext again.
  345.       
  346.      This feature is the safest way for you to prevent your sensitive
  347.      message from being inadvertently left on the recipient's disk.  This
  348.      feature was added at the request of a user who wanted to send
  349.      intimate messages to his lover, but was afraid she might accidentally
  350.      leave the decrypted messages on her husband's computer.
  351.       
  352.       
  353.       
  354.      Preserving the Original Plaintext Filename
  355.      ------------------------------------------
  356.       
  357.  
  358.      PGPDOC2.TXT           Thursday, September  3, 1992 2:07 am           Page 8
  359.  
  360.  
  361.      Normally, PGP names the decrypted plaintext output file with a name
  362.      similar to the input ciphertext filename, but dropping the 
  363.      extension.  Or, you can override that convention by specifying an
  364.      output plaintext filename on the command line with the -o option.
  365.      For most E-mail, this is a reasonable way to name the plaintext file,
  366.      because you get to decide its name when you decipher it, and your
  367.      typical E-mail messages often come from useless original plaintext
  368.      filenames like "to_phil.txt".  
  369.       
  370.      But when PGP encrypts a plaintext file, it always saves the original
  371.      filename and attaches it to the plaintext before it compresses and
  372.      encrypts the plaintext.  Normally, this hidden original filename is
  373.      discarded by PGP when it decrypts, but you can tell PGP you want to
  374.      preserve the original plaintext filename and use it as the name of
  375.      the decrypted plaintext output file.  This is useful if PGP is used
  376.      to on files whose names are important to preserve.
  377.       
  378.      To recover the original plaintext filename while decrypting, add 
  379.      the -p option, like so:
  380.       
  381.           pgp -p ciphertextfile
  382.       
  383.      I usually don't use this option, because if I did, about half of my
  384.      incoming E-mail would decrypt to the same plaintext filenames of
  385.      "to_phil.txt" or "prz.txt".
  386.       
  387.       
  388.       
  389.      Editing Your User ID or Pass Phrase
  390.      -----------------------------------
  391.       
  392.      Sometimes you may need to change your pass phrase, perhaps because
  393.      someone looked over your shoulder while you typed it in.  
  394.       
  395.      Or you may need to change your user ID, because you got married and
  396.      changed your name, or maybe you changed your E-mail address.  Or
  397.      maybe you want to add a second or third user ID to your key, because
  398.      you may be known by more than one name or E-mail address or job
  399.      title.  PGP lets you attach more than one user ID to your key, any
  400.      one of which may be used to look up your key on the key ring.
  401.       
  402.      To edit your userid or pass phrase for your secret key:
  403.       
  404.           pgp -ke userid [keyring]
  405.       
  406.      PGP prompts you for a new user ID or a new pass phrase.
  407.       
  408.       
  409.       
  410.      Editing the Trust Parameters for a Public Key
  411.      ---------------------------------------------
  412.       
  413.      Sometimes you need to alter the trust parameters for a public key on
  414.      your public key ring.  For a discussion on what these trust
  415.      parameters mean, see the section "How Does PGP Keep Track of Which
  416.      Keys are Valid?" in the Essential Topics volume of the PGP User's
  417.  
  418.      PGPDOC2.TXT           Thursday, September  3, 1992 2:07 am           Page 9
  419.  
  420.  
  421.      Guide.
  422.       
  423.      To edit the trust parameters for a public key:
  424.       
  425.           pgp -ke userid [keyring]
  426.       
  427.       
  428.       
  429.      Checking If Everything is OK on Your Public Key Ring
  430.      ----------------------------------------------------
  431.       
  432.      Normally, PGP automatically checks any new keys or signatures on your
  433.      public key ring and updates all the trust parameters and validity
  434.      scores.  In theory, it keeps all the key validity status information
  435.      up to date as material is added to or deleted from your public key
  436.      ring.  But perhaps you may want to explicitly force PGP to perform a
  437.      comprehensive analysis of your public key ring, checking all the
  438.      certifying signatures, checking the trust parameters, updating all
  439.      the validity scores, and checking your own ultimately-trusted key
  440.      against a backup copy on a write-protected floppy disk.  It may be a
  441.      good idea to do this hygienic maintenance periodically to make sure
  442.      nothing is wrong with your public key ring.  To force PGP to perform
  443.      a full analysis of your public key ring, use the -kc (key ring check)
  444.      command:
  445.       
  446.           pgp -kc
  447.       
  448.      You can also make PGP check all the signatures for just a single
  449.      selected public key by:
  450.       
  451.           pgp -kc userid [keyring]
  452.       
  453.      For further information on how the backup copy of your own key is
  454.      checked, see the description of the BAKRING parameter in the
  455.      configuration file section of this manual.
  456.       
  457.       
  458.       
  459.      Using PGP as a Unix-style Filter
  460.      --------------------------------
  461.       
  462.      Unix fans are accustomed to using Unix "pipes" to make two
  463.      applications work together.  The output of one application can be
  464.      directly fed through a pipe to be read as input to another
  465.      application.  For this to work, the applications must be capable of
  466.      reading the raw material from "standard input" and writing the
  467.      finished output to "standard output".  PGP can operate in this mode.
  468.      If you don't understand what this means, then you probably don't need
  469.      this feature.
  470.       
  471.      To use a Unix-style filter mode, reading from standard input and
  472.      writing to standard output, add the -f option, like so:
  473.       
  474.           pgp -feast her_userid <inputfile >outputfile
  475.       
  476.      This feature makes it easier to make PGP work with electronic mail
  477.  
  478.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 10
  479.  
  480.  
  481.      applications.
  482.       
  483.      When using PGP in filter mode to decrypt a ciphertext file, you may
  484.      find it useful to use the PGPPASS environmental variable to hold the
  485.      pass phrase, so that you won't be prompted for it.  The PGPPASS
  486.      feature is explained below.
  487.       
  488.       
  489.       
  490.      PGP Returns Exit Status to the Shell
  491.      ------------------------------------
  492.       
  493.      To facilitate running PGP in "batch" mode, such as from an MSDOS
  494.      ".bat" file or from a Unix shell script, PGP returns an error exit
  495.      status to the shell.  An exit status code of zero means normal exit,
  496.      while a nonzero exit status indicates some kind of error occurred.
  497.      Different error exit conditions return different exit status codes to
  498.      the shell.
  499.       
  500.       
  501.       
  502.      Environmental Variable for Pass Phrase
  503.      --------------------------------------
  504.       
  505.      Normally, PGP prompts the user to type a pass phrase whenever PGP 
  506.      needs a pass phrase to unlock a secret key.  But it is possible to
  507.      store the pass phrase in an environmental variable from your
  508.      operating system's command shell.  The environmental variable PGPPASS
  509.      can be used to hold the pass phrase that PGP will attempt to use
  510.      first.  If the pass phrase stored in PGPPASS is incorrect, PGP 
  511.      recovers by prompting the user for the correct pass phrase.
  512.       
  513.      For example, on MSDOS, the shell command:
  514.       
  515.          SET PGPPASS=zaphod beeblebrox for president
  516.       
  517.      would eliminate the prompt for the pass phrase if the pass phrase
  518.      were indeed "zaphod beeblebrox for president". 
  519.       
  520.      This dangerous feature makes your life more convenient if you have to
  521.      regularly deal with a large number of incoming messages addressed to
  522.      your secret key, by eliminating the need for you to repeatedly type
  523.      in your pass phrase every time you run PGP.
  524.       
  525.      I added this feature because of popular demand.  However, this is a
  526.      somewhat dangerous feature, because it keeps your precious pass
  527.      phrase stored somewhere other than just in your brain.  Even worse,
  528.      if you are particularly reckless, it may even be stored on a disk on
  529.      the same computer as your secret key.  It would be particularly
  530.      dangerous and stupid if you were to install this command in a batch
  531.      or script file, such as the MSDOS AUTOEXEC.BAT file.  Someone could
  532.      come along on your lunch hour and steal both your secret key ring and
  533.      the file containing your pass phrase.  
  534.       
  535.      I can't emphasize the importance of this risk enough.  If you are
  536.      contemplating using this feature, be sure to read the sections
  537.  
  538.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 11
  539.  
  540.  
  541.      "Exposure on Multi-user Systems" and "How to Protect Secret Keys from
  542.      Disclosure" in this volume and in the Essential Topics volume of the 
  543.      PGP User's Guide.
  544.       
  545.      If you must use this feature, the safest way to do it would be to
  546.      just manually type in the shell command to set PGPPASS every time you
  547.      boot your machine to start using PGP, and then erase it or turn off
  548.      your machine when you are done.  And you should definitely never do
  549.      it in an environment where someone else may have access to your
  550.      machine.  Someone could come along and simply ask your computer to
  551.      display the contents of PGPPASS.
  552.       
  553.       
  554.       
  555.      Setting Configuration Parameters: CONFIG.TXT
  556.      ============================================
  557.       
  558.      PGP has a number of user-settable parameters that can be defined in a
  559.      special configuration text file called "config.txt", in the directory
  560.      pointed to by the shell environmental variable PGPPATH.  Having a
  561.      configuration file enables the user to define various flags and
  562.      parameters for PGP without the burden of having to always define
  563.      these parameters in the PGP command line.
  564.       
  565.      Configuration parameters may be assigned integer values, character
  566.      string values, or on/off values, depending on what kind of
  567.      configuration parameter it is.  A sample configuration file is
  568.      provided with PGP, so you can see some examples.
  569.       
  570.      In the configuration file, blank lines are ignored, as is anything
  571.      following the '#' comment character.  Keywords are not
  572.      case-sensitive.  
  573.       
  574.      Here is a short sample fragment of a typical configuration file:
  575.       
  576.         # TMP is the directory for PGP scratch files, such as a RAM disk.
  577.         TMP = "e:\"    # Can be overridden by environment variable TMP.
  578.         Armor = on     # Use -a flag for ASCII armor whenever applicable.
  579.         # CERT_DEPTH is how deeply introducers may introduce introducers.
  580.         cert_depth = 3
  581.       
  582.      If some configuration parameters are not defined in the configuration
  583.      file, or if there is no configuration file, or if PGP can't find the
  584.      configuration file, the values for the configuration parameters
  585.      default to some reasonable value.
  586.       
  587.      The following is a summary of the various parameters than may be
  588.      defined in the configuration file.
  589.       
  590.       
  591.      TMP - Directory Pathname for Temporary Files
  592.      --------------------------------------------
  593.       
  594.      Default setting:  TMP = ""
  595.       
  596.      The configuration parameter TMP specifies what directory to use for
  597.  
  598.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 12
  599.  
  600.  
  601.      PGP's temporary scratch files.  The best place to put them is on a
  602.      RAM disk, if you have one.  That speeds things up quite a bit, and
  603.      increases security somewhat.  If TMP is undefined, the temporary
  604.      files go in the current directory.  If the shell environmental
  605.      variable TMP is defined, PGP instead uses that to specify where the
  606.      temporary files should go.
  607.       
  608.       
  609.      LANGUAGE - Foreign Language Selector
  610.      ------------------------------------
  611.       
  612.      Default setting:  LANGUAGE = "en"
  613.       
  614.      PGP displays various prompts, warning messages, and advisories to the
  615.      user on the screen.  For example, messages such as "File not found.",
  616.      or "Please enter your pass phrase:".  These messages are normally in
  617.      English.  But it is possible to get PGP to display its messages to
  618.      the user in other languages, without having to modify the PGP
  619.      executable program.
  620.       
  621.      A number of people in various countries have translated all of PGP's
  622.      display messages, warnings, and prompts into their native languages. 
  623.      These hundreds of translated message strings have been placed in a
  624.      special text file called "language.txt", distributed with the PGP
  625.      release.  The messages are stored in this file in English, Spanish,
  626.      Dutch, German, French, Italian, Russian, Latvian, and Lithuanian. 
  627.      Other languages may be added later.  
  628.       
  629.      The configuration parameter LANGUAGE specifies what language to
  630.      display these messages in.  LANGUAGE may be set to "en" for English,
  631.      "es" for Spanish, "de" for German, "nl" for Dutch, "fr" for French,
  632.      "it" for Italian, "ru" for Russian, "lt3" for Lithuanian, "lv" for
  633.      Latvian, "esp" for Esperanto.  For example, if this line appeared in
  634.      the configuration file:
  635.       
  636.         LANGUAGE = "fr"
  637.       
  638.      PGP would select French as the language for its display messages.
  639.      The default setting is English.
  640.       
  641.      When PGP needs to display a message to the user, it looks in the
  642.      "language.txt" file for the equivalent message string in the selected
  643.      foreign language and displays that translated message to the user.
  644.      If PGP can't find the language string file, or if the selected
  645.      language is not in the file, or if that one phrase is not translated
  646.      into the selected language in the file, or if that phrase is missing
  647.      entirely from the file, PGP displays the message in English.
  648.       
  649.       
  650.      MYNAME - Default User ID for Making Signatures
  651.      ----------------------------------------------
  652.       
  653.      Default setting:  MYNAME = ""
  654.       
  655.      The configuration parameter MYNAME specifies the default user ID to
  656.      use to select the secret key for making signatures.  If MYNAME is not
  657.  
  658.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 13
  659.  
  660.  
  661.      defined, the most recent secret key you installed on your secret key
  662.      ring will be used.  The user may also override this setting by
  663.      specifying a user ID on the PGP command line with the -u option.
  664.       
  665.       
  666.      TEXTMODE - Assuming Plaintext is a Text File
  667.      --------------------------------------------
  668.       
  669.      Default setting:  TEXTMODE = off
  670.       
  671.      The configuration parameter TEXTMODE is equivalent to the -t command
  672.      line option.  If enabled, it causes PGP to assume the plaintext is a
  673.      text file, not a binary file, and converts it to "canonical text"
  674.      before encrypting it.  Canonical text has a carriage return and a
  675.      linefeed at the end of each line of text.
  676.       
  677.      This mode will be automatically turned off if PGP detects that the
  678.      plaintext file contains what it thinks is non-text binary data.
  679.       
  680.      For further details, see the section "Sending ASCII Text Files Across
  681.      Different Machine Environments".
  682.       
  683.       
  684.      CHARSET - Specifies Local Character Set for Text Files
  685.      ------------------------------------------------------
  686.       
  687.      Default setting:  CHARSET = NOCONV
  688.       
  689.      Because PGP must process messages in many non-English languages with
  690.      non-ASCII character sets, you may have a need to tell PGP what local
  691.      character set your machine uses.  This determines what character
  692.      conversions are performed when converting plaintext files to and from
  693.      canonical text format.  This is only a concern if you are in a
  694.      non-English non-ASCII environment.
  695.       
  696.      The configuration parameter CHARSET selects the local character set. 
  697.      The choices are NOCONV (no conversion), LATIN1 (ISO 8859-1 Latin
  698.      Alphabet 1), KOI8 (used by most Russian Unix systems), ALT-CODES
  699.      (used by Russian MSDOS systems), ASCII, and CP850 (used by most
  700.      western European languages on standard MSDOS PCs).
  701.       
  702.      LATIN1 is the internal representation used by PGP for canonical text,
  703.      so if you select LATIN1, no conversion is done.  Note also that PGP
  704.      treats KOI8 as LATIN1, even though it is a completely different
  705.      character set (Russian), because trying to convert KOI8 to either
  706.      LATIN1 or CP850 would be futile anyway.  This means that setting
  707.      CHARSET to NOCONV, LATIN1, or KOI8 are all equivalent to PGP.
  708.       
  709.      If you use MSDOS and expect to send or receive traffic in western
  710.      European languages, set CHARSET = "CP850".  This will make PGP
  711.      convert incoming canonical text messages from LATIN1 to CP850 after
  712.      decryption.  If you use the -t (textmode) option to convert to
  713.      canonical text, PGP will convert your CP850 text to LATIN1 before
  714.      encrypting it.
  715.       
  716.      For further details, see the section "Sending ASCII Text Files Across
  717.  
  718.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 14
  719.  
  720.  
  721.      Different Machine Environments".
  722.       
  723.       
  724.      ARMOR - Enable ASCII Armor Output
  725.      ---------------------------------
  726.       
  727.      Default setting:  ARMOR = off
  728.       
  729.      The configuration parameter ARMOR is equivalent to the -a command
  730.      line option.  If enabled, it causes PGP to emit ciphertext or keys in
  731.      ASCII Radix-64 format suitable for transporting through E-mail
  732.      channels.  Output files are named with the ".asc" extension.
  733.       
  734.      If you tend to use PGP mostly for E-mail, it may be a good idea to
  735.      enable this parameter.
  736.       
  737.      For further details, see the section "Sending Ciphertext Through
  738.      E-mail Channels: Radix-64 Format" in the Essential Topics volume. 
  739.       
  740.       
  741.      ARMORLINES - Size of ASCII Armor Multipart Files
  742.      ------------------------------------------------
  743.       
  744.      Default setting:  ARMORLINES = 720
  745.       
  746.      When PGP creates a very large ".asc" radix-64 file for sending
  747.      ciphertext or keys through the E-mail, it breaks the file up into
  748.      separate chunks small enough to send through Internet mail
  749.      utilities.  Normally, Internet mailers prohibit files larger than
  750.      about 50000 bytes, which means that if we restrict the number of
  751.      lines to about 720, we'll be well within the limit.  The file chunks
  752.      are named with suffixes ".as1", ".as2", ".as3", ... 
  753.       
  754.      The configuration parameter ARMORLINES specifies the maximum number
  755.      of lines to make each chunk in a multipart ".asc" file sequence.  If
  756.      you set it to zero, PGP will not break up the file into chunks.
  757.       
  758.      For further details, see the section "Sending Ciphertext Through
  759.      E-mail Channels: Radix-64 Format" in the Essential Topics volume.
  760.       
  761.       
  762.      KEEPBINARY - Keep Binary Ciphertext Files After Decrypting
  763.      ----------------------------------------------------------
  764.       
  765.      Default setting:  KEEPBINARY = on
  766.       
  767.      When PGP reads a ".asc" file, it recognizes that the file is in
  768.      radix-64 format and will convert it back to binary before processing
  769.      as it normally does, producing as a by-product a ".pgp" ciphertext
  770.      file in binary form.  After further processing to decrypt the ".pgp"
  771.      file, the final output file will be in normal plaintext form.
  772.       
  773.      You may want to delete the binary ".pgp" intermediate file, or you
  774.      may want PGP to delete it for you automatically.  You can still rerun
  775.      PGP on the original ".asc" file.
  776.       
  777.  
  778.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 15
  779.  
  780.  
  781.      The configuration parameter KEEPBINARY enables or disables keeping
  782.      the intermediate ".pgp" file during decryption.
  783.       
  784.      For further details, see the section "Sending Ciphertext Through
  785.      E-mail Channels: Radix-64 Format" in the Essential Topics volume.
  786.       
  787.       
  788.      VERBOSE - Enable Verbose Mode
  789.      -----------------------------
  790.       
  791.      Default setting:  VERBOSE = off
  792.       
  793.      The configuration parameter VERBOSE enables "verbose" diagnostic
  794.      messages during PGP's operation, which is mainly useful for debugging
  795.      PGP.  Otherwise, there is not much use for it.
  796.       
  797.       
  798.      COMPRESS - Enable Compression
  799.      -----------------------------
  800.       
  801.      Default setting:  COMPRESS = on
  802.       
  803.      The configuration parameter COMPRESS enables or disables data
  804.      compression before encryption.  It is used mainly for debugging PGP. 
  805.      Normally, PGP attempts to compress the plaintext before it encrypts
  806.      it.  Generally, you should leave this alone and let PGP attempt to
  807.      compress the plaintext.
  808.       
  809.       
  810.      COMPLETES_NEEDED - Number of Completely Trusted Introducers Needed
  811.      ------------------------------------------------------------------
  812.       
  813.      Default setting:  COMPLETES_NEEDED = 1
  814.       
  815.      The configuration parameter COMPLETES_NEEDED specifies the minimum
  816.      number of completely trusted introducers required to fully certify a
  817.      public key on your public key ring.  This gives you a way of tuning
  818.      PGP's skepticism.
  819.       
  820.      For further details, see the section "How Does PGP Keep Track of 
  821.      Which Keys are Valid?" in the Essential Topics volume.
  822.       
  823.       
  824.      MARGINALS_NEEDED - Number of Marginally Trusted Introducers Needed
  825.      ------------------------------------------------------------------
  826.       
  827.      Default setting:  MARGINALS_NEEDED = 2
  828.       
  829.      The configuration parameter MARGINALS_NEEDED specifies the minimum
  830.      number of marginally trusted introducers required to fully certify a
  831.      public key on your public key ring.  This gives you a way of tuning
  832.      PGP's skepticism.
  833.       
  834.      For further details, see the section "How Does PGP Keep Track of 
  835.      Which Keys are Valid?" in the Essential Topics volume.
  836.       
  837.  
  838.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 16
  839.  
  840.  
  841.       
  842.      CERT_DEPTH - How Deep May Introducers Be Nested
  843.      -----------------------------------------------
  844.       
  845.      Default setting:  CERT_DEPTH = 4
  846.       
  847.      The configuration parameter CERT_DEPTH specifies how many levels deep
  848.      you may nest introducers to certify other introducers to certify
  849.      public keys on your public key ring.  For example, If CERT_DEPTH is
  850.      set to 1, there may only be one layer of introducers below your own
  851.      ultimately-trusted key.  If that were the case, you would be required
  852.      to directly certify the public keys of all trusted introducers on
  853.      your key ring.  If you set CERT_DEPTH to 0, you could have no
  854.      introducers at all, and you would have to directly certify each and
  855.      every key on your public key ring in order to use it.  The minimum
  856.      CERT_DEPTH is 0, the maximum is 8.
  857.       
  858.      For further details, see the section "How Does PGP Keep Track of 
  859.      Which Keys are Valid?" in the Essential Topics volume.
  860.       
  861.       
  862.      BAKRING - Filename for Backup Secret Keyring
  863.      --------------------------------------------
  864.       
  865.      Default setting:  BAKRING = ""
  866.       
  867.      All of the key certification that PGP does on your public key ring
  868.      ultimately depends on your own ultimately-trusted public key (or
  869.      keys).  To detect any tampering of your public key ring, PGP must
  870.      check that your own key has not been tampered with.  To do this, PGP
  871.      must compare your public key against a backup copy of your secret key
  872.      on some tamper-resistant media, such as a write-protected floppy
  873.      disk.  A secret key contains all the information that your public key
  874.      has, plus some secret components.  This means PGP can check your
  875.      public key against a backup copy of your secret key.
  876.       
  877.      The configuration parameter BAKRING specifies what pathname to use
  878.      for PGP's trusted backup copy of your secret key ring.  On MSDOS, you
  879.      could set it to "a:\secring.pgp" to point it at a write-protected
  880.      backup copy of your secret key ring on your floppy drive.  This check
  881.      is performed only when you execute the PGP -kc option to check your
  882.      whole public key ring.
  883.       
  884.      If BAKRING is not defined, PGP will not check your own key against
  885.      any backup copy.
  886.       
  887.      For further details, see the sections "How to Protect Public Keys
  888.      from Tampering" and "How Does PGP Keep Track of Which Keys are
  889.      Valid?" in the Essential Topics volume.
  890.       
  891.       
  892.      PAGER - Selects Shell Command to Display Plaintext Output
  893.      ---------------------------------------------------------
  894.       
  895.      Default setting:  PAGER = ""
  896.       
  897.  
  898.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 17
  899.  
  900.  
  901.      PGP lets you view the decrypted plaintext output on your screen (like
  902.      the Unix-style "more" command), without writing it to a file, if you
  903.      use the -m (more) option while decrypting.  This displays the
  904.      decrypted plaintext display on your screen one screenful at a time.
  905.       
  906.      If you prefer to use a fancier page display utility, rather than
  907.      PGP's built-in one, you can specify the name of a shell command that
  908.      PGP will invoke to display your plaintext output file.  The
  909.      configuration parameter PAGER specifies the shell command to invoke
  910.      to display the file.  For example:
  911.       
  912.         PAGER = "more"
  913.       
  914.      However, if the sender specified that this file is for your eyes
  915.      only, and may not be written to disk, PGP always uses its own
  916.      built-in display function.
  917.       
  918.      For further details, see the section "Displaying Decrypted Plaintext 
  919.      on Your Screen".
  920.       
  921.       
  922.      SHOWPASS - Echo Pass Phrase to User
  923.      -----------------------------------
  924.       
  925.      Default setting:  SHOWPASS = off
  926.       
  927.      Normally, PGP does not let you see your pass phrase as you type it
  928.      in.  This makes it harder for someone to look over your shoulder
  929.      while you type and learn your pass phrase.  But some typing-impaired
  930.      people have problems typing their pass phrase without seeing what
  931.      they are typing, and they may be typing in the privacy of their own
  932.      homes.  So they asked if PGP can be configured to let them see what
  933.      they type when they type in their pass phrase.
  934.       
  935.      The configuration parameter SHOWPASS enables PGP to echo your typing 
  936.      during pass phrase entry.
  937.       
  938.       
  939.      TZFIX - Timezone Adjustment
  940.      ---------------------------
  941.       
  942.      Default setting:  TZFIX = 0
  943.       
  944.      PGP provides timestamps for keys and signature certificates in
  945.      Greenwich Mean Time (GMT), or Coordinated Universal Time (UTC), which
  946.      means the same thing for our purposes.  When PGP asks the system for
  947.      the time of day, the system is supposed to provide it in GMT.  
  948.       
  949.      But sometimes, because of improperly configured MSDOS systems, the
  950.      system time is returned in US Pacific Standard Time time plus 8
  951.      hours.  Sounds weird, doesn't it?  Perhaps because of some sort of US
  952.      west-coast jingoism, MSDOS presumes local time is US Pacific time,
  953.      and pre-corrects Pacific time to GMT.  This adversely affects the
  954.      behavior of the internal MSDOS GMT time function that PGP calls. 
  955.      However, if your MSDOS environmental variable TZ is already properly
  956.      defined for your timezone, this corrects the misconception MSDOS has
  957.  
  958.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 18
  959.  
  960.  
  961.      that the whole world lives on the US west coast.  
  962.       
  963.      The configuration parameter TZFIX specifies the number of hours to
  964.      add to the system time function to get GMT, for GMT timestamps on
  965.      keys and signatures.  If the MSDOS environmental variable TZ is
  966.      defined properly, you can leave TZFIX=0.  Unix systems usually
  967.      shouldn't need to worry about setting TZFIX at all.  But if you are
  968.      using some other obscure operating system that doesn't know about
  969.      GMT, you may have to use TZFIX to adjust the system time to GMT. 
  970.       
  971.      On MSDOS systems that do not have TZ defined in the environment, you
  972.      should make TZFIX=0 for California, -1 for Colorado, -2 for Chicago,
  973.      -3 for New York, -8 for London, -9 for Amsterdam.  In the summer,
  974.      TZFIX should be manually decremented from these values.  What a mess.
  975.       
  976.      It would be much cleaner to set your MSDOS environmental variable TZ
  977.      in your AUTOEXEC.BAT file, and not use the TZFIX correction.  Then
  978.      MSDOS gives you good GMT timestamps, and will handle daylight savings
  979.      time adjustments for you.  Here are some sample lines to insert into
  980.      AUTOEXEC.BAT, depending on your time zone:
  981.       
  982.      For Colorado:    SET TZ = MST7MDT
  983.      For Arizona:     SET TZ = MST7
  984.         (Arizona never uses daylight savings time)
  985.      For Chicago:     SET TZ = CST6CDT
  986.      For New York:    SET TZ = EST5EDT
  987.      For London:      SET TZ = GMT0BST
  988.      For Amsterdam:   SET TZ = MET-1DST
  989.       
  990.       
  991.  
  992.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 19
  993.  
  994.  
  995.       
  996.      Protecting Against Bogus Timestamps
  997.      ===================================
  998.       
  999.      A somewhat obscure vulnerability of PGP involves dishonest users
  1000.      creating bogus timestamps on their own public key certificates and
  1001.      signatures.  You can skip over this section if you are a casual user
  1002.      and aren't deeply into obscure public key protocols.
  1003.       
  1004.      There's nothing to stop a dishonest user from altering the date and
  1005.      time setting of his own system's clock, and generating his own public
  1006.      key certificates and signatures that appear to have been created at a
  1007.      different time.  He can make it appear that he signed something
  1008.      earlier or later than he actually did, or that his public/secret key
  1009.      pair was created earlier or later.  This may have some legal or
  1010.      financial benefit to him, for example by creating some kind of 
  1011.      loophole that might allow him to repudiate a signature.
  1012.       
  1013.      A remedy for this could involve some trustworthy Certifying Authority
  1014.      or notary that would create notarized signatures with a trustworthy
  1015.      timestamp.  This might not necessarily require a centralized
  1016.      authority.  Perhaps any trusted introducer or disinterested party
  1017.      could serve this function, the same way real notary publics do now. 
  1018.      A public key certificate could be signed by the notary, and the
  1019.      trusted timestamp in the notary's signature would have some legal
  1020.      significance.  The notary could enter the signed certificate into a
  1021.      special certificate log controlled by the notary.  Anyone can read
  1022.      this log. 
  1023.       
  1024.      The notary could also sign other people's signatures, creating a
  1025.      signature certificate of a signature certificate.  This would serve
  1026.      as a witness to the signature the same way real notaries do now with
  1027.      paper.  Again, the notary could enter the detached signature
  1028.      certificate (without the actual whole document that was signed) into
  1029.      a log controlled by the notary.  The notary's signature would have a
  1030.      trusted timestamp, which might have greater credibility than the
  1031.      timestamp in the original signature.  A signature becomes "legal" if
  1032.      it is signed and logged by the notary.
  1033.       
  1034.      This problem of certifying signatures with notaries and trusted
  1035.      timestamps warrants further discussion.  This can of worms will not
  1036.      be fully covered here now.  There is a good treatment of this topic
  1037.      in Denning's 1983 article in IEEE Computer (see references).  There
  1038.      is much more detail to be worked out in these various certifying
  1039.      schemes.  This will develop further as PGP usage increases and other
  1040.      public key products develop their own certifying schemes.
  1041.       
  1042.       
  1043.  
  1044.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 20
  1045.  
  1046.  
  1047.       
  1048.      A Peek Under the Hood
  1049.      =====================
  1050.       
  1051.      Let's take a look at a few internal features of PGP.
  1052.       
  1053.       
  1054.      Random Numbers
  1055.      --------------
  1056.       
  1057.      PGP uses a cryptographically strong pseudorandom number generator for
  1058.      creating temporary conventional session keys.  The seed file for this
  1059.      is called  "randseed.bin".  It too can be kept in whatever directory
  1060.      is indicated by the PGPPATH environmental variable.  If this random
  1061.      seed file does not exist, it is automatically created and seeded with
  1062.      truly random numbers derived from timing your keystroke latencies.  
  1063.       
  1064.      This generator reseeds the disk file each time it is used by mixing
  1065.      in new key material partially derived with the time of day and other
  1066.      truly random sources.  It uses the conventional encryption algorithm
  1067.      as an engine for the random number generator.  The seed file contains
  1068.      both random seed material and random key material to key the
  1069.      conventional encryption engine for the random generator.
  1070.       
  1071.      If you feel uneasy about trusting any algorithmically derived random
  1072.      number source however strong, keep in mind that you already trust the
  1073.      strength of the same conventional cipher to protect your messages. 
  1074.      If it's strong enough for that, then it should be strong enough to
  1075.      use as a source of random numbers for temporary session keys.  Note
  1076.      that PGP still uses truly random numbers from physical sources
  1077.      (mainly keyboard timings) to generate long-term public/secret key
  1078.      pairs.
  1079.       
  1080.       
  1081.       
  1082.      PGP's Conventional Encryption Algorithm
  1083.      ---------------------------------------
  1084.       
  1085.      As described earlier, PGP "bootstraps" into a conventional single-key
  1086.      encryption algorithm by using a public key algorithm to encipher the
  1087.      conventional session key and then switching to fast conventional
  1088.      cryptography.  So let's talk about this conventional encryption
  1089.      algorithm.  It isn't the DES.
  1090.       
  1091.      The Federal Data Encryption Standard (DES) is a good algorithm for
  1092.      most commercial applications.  However, the Government does not trust
  1093.      the DES to protect its own classified data.  Perhaps this is because
  1094.      the DES key length is 56 bits, short enough for a brute force attack
  1095.      with a special purpose machine built from massive numbers of DES
  1096.      chips.  Also, Biham and Shamir have had some success recently on
  1097.      attacking the full 16-round DES.
  1098.       
  1099.      PGP does not use the DES as its conventional single-key algorithm to
  1100.      encrypt messages.  Instead, PGP uses a different conventional
  1101.      single-key block encryption algorithm, called IDEA(tm).  A future
  1102.      version of PGP may support the DES as an option, if enough users
  1103.  
  1104.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 21
  1105.  
  1106.  
  1107.      ask for it.  But I suspect IDEA is better than DES.
  1108.       
  1109.      For the cryptographically curious, the IDEA cipher has a 64-bit block
  1110.      size for the plaintext and the ciphertext.  It uses a key size of 128
  1111.      bits.  It is based on the design concept of "mixing operations from
  1112.      different algebraic groups".  It runs much faster in software than
  1113.      the DES.  Like the DES, it can be used in cipher feedback (CFB) and
  1114.      cipher block chaining (CBC) modes.  PGP uses it in 64-bit CFB mode.
  1115.       
  1116.      The IPES/IDEA block cipher was developed at ETH in Zurich by James L.
  1117.      Massey and Xuejia Lai, and published in 1990.  This is not a 
  1118.      "home-grown" algorithm.  Its designers have a distinguished
  1119.      reputation in the cryptologic community.  Early published papers on
  1120.      the algorithm called it IPES (Improved Proposed Encryption Standard),
  1121.      but they later changed the name to IDEA (International Data
  1122.      Encryption Algorithm).  So far, IDEA has resisted attack much better
  1123.      than other ciphers such as FEAL, REDOC-II, LOKI, Snefru and Khafre. 
  1124.      And preliminary evidence suggests that IDEA may be more resistant
  1125.      than the DES to Biham & Shamir's highly successful differential
  1126.      cryptanalysis attack.  Biham and Shamir have been examining the IDEA
  1127.      cipher for weaknesses.  Academic cryptanalyst groups in Belgium,
  1128.      England, and Germany are also attempting to attack it, as well as the
  1129.      military services from several European countries.  As this new
  1130.      cipher continues to attract attack efforts from the most formidable
  1131.      quarters of the cryptanalytic world, confidence in IDEA is growing
  1132.      with the passage of time.
  1133.       
  1134.      A famous hockey player once said, "I try to skate to where I think
  1135.      the puck will be."  A lot of people are starting to feel that the
  1136.      days are numbered for the DES.  I'm skating toward IDEA.
  1137.       
  1138.      It is not ergonomically practical to use pure RSA with large keys to
  1139.      encrypt and decrypt long messages.  Absolutely no one does it that way
  1140.      in the real world.  But perhaps you are concerned that the whole
  1141.      package is weakened if we use a hybrid public-key and conventional
  1142.      scheme just to speed things up.  After all, a chain is only as strong
  1143.      as its weakest link.  Many people less experienced in cryptography
  1144.      mistakenly believe that RSA is intrinsically stronger than any
  1145.      conventional cipher.  It's not.  RSA can be made weak by using weak
  1146.      keys, and conventional ciphers can be made strong by choosing good
  1147.      algorithms.  It's usually difficult to tell exactly how strong a good
  1148.      conventional cipher is, without actually cracking it.  A really good
  1149.      conventional cipher might possibly be harder to crack than even a
  1150.      "military grade" RSA key.  The attraction of public key cryptography
  1151.      is not because it is intrinsically stronger than a conventional
  1152.      cipher-- its appeal is because it helps you manage keys more
  1153.      conveniently.
  1154.       
  1155.       
  1156.       
  1157.      Data Compression
  1158.      ----------------
  1159.       
  1160.      PGP normally compresses the plaintext before encrypting it.  It's too
  1161.      late to compress it after it has been encrypted; encrypted data is
  1162.      incompressible.  Data compression saves modem transmission time and
  1163.  
  1164.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 22
  1165.  
  1166.  
  1167.      disk space and more importantly strengthens cryptographic security.  
  1168.      Most cryptanalysis techniques exploit redundancies found in the
  1169.      plaintext to crack the cipher.  Data compression reduces this
  1170.      redundancy in the plaintext, thereby greatly enhancing resistance to 
  1171.      cryptanalysis.  It takes extra time to compress the plaintext, but 
  1172.      from a security point of view it seems worth it, at least in my 
  1173.      cautious opinion. 
  1174.       
  1175.      Files that are too short to compress or just don't compress well are
  1176.      not compressed by PGP.  
  1177.       
  1178.      If you prefer, you can use PKZIP to compress the plaintext before
  1179.      encrypting it.  PKZIP is a widely-available and effective MSDOS
  1180.      shareware compression utility from PKWare, Inc.  Or you can use ZIP,
  1181.      a PKZIP-compatible freeware compression utility on Unix and other
  1182.      systems, available from Jean-Loup Gailly.  There is some advantage in
  1183.      using PKZIP or ZIP in certain cases, because unlike PGP's built-in
  1184.      compression algorithm, PKZIP and ZIP have the nice feature of
  1185.      compressing multiple files into a single compressed file, which is
  1186.      reconstituted again into separate files when decompressed.  PGP will
  1187.      not try to compress a plaintext file that has already been
  1188.      compressed.  After decrypting, the recipient can decompress the
  1189.      plaintext with PKUNZIP.  If the decrypted plaintext is a PKZIP
  1190.      compressed file, PGP automatically recognizes this and advises the 
  1191.      recipient that the decrypted plaintext appears to be a PKZIP file.
  1192.       
  1193.      For the technically curious readers, the current version of PGP uses
  1194.      the freeware ZIP compression routines written by Jean-loup Gailly,
  1195.      Mark Adler, and Richard B. Wales.  This ZIP software uses
  1196.      functionally-equivalent compression algorithms as those used by
  1197.      PKWare's new PKZIP 2.0.  This ZIP compression software was selected
  1198.      for PGP mainly because of its free portable C source code
  1199.      availability, and because it has a really good compression ratio, and
  1200.      because it's fast.  
  1201.       
  1202.       
  1203.       
  1204.      Message Digests and Digital Signatures
  1205.      --------------------------------------
  1206.       
  1207.      To create a digital signature, PGP encrypts with your secret key. 
  1208.      But PGP doesn't actually encrypt your entire message with your secret
  1209.      key-- that would take too long.  Instead, PGP encrypts a "message
  1210.      digest".  
  1211.       
  1212.      The message digest is a compact (128 bit) "distillate" of your
  1213.      message, similar in concept to a checksum.  You can also think of it
  1214.      as a "fingerprint" of the message.  The message digest "represents"
  1215.      your message, such that if the message were altered in any way, a
  1216.      different message digest would be computed from it.  This makes it
  1217.      possible to detect any changes made to the message by a forger.  A
  1218.      message digest is computed using a cryptographically strong one-way
  1219.      hash function of the message.  It would be computationally infeasible
  1220.      for an attacker to devise a substitute message that would produce an
  1221.      identical message digest.  In that respect, a message digest is much
  1222.      better than a checksum, because it is easy to devise a different
  1223.  
  1224.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 23
  1225.  
  1226.  
  1227.      message that would produce the same checksum.  But like a checksum,
  1228.      you can't derive the original message from its message digest.  
  1229.       
  1230.      A message digest alone is not enough to authenticate a message.  The
  1231.      message digest algorithm is publicly known, and does not require
  1232.      knowledge of any secret keys to calculate.  If all we did was attach
  1233.      a message digest to a message, then a forger could alter a message
  1234.      and simply attach a new message digest calculated from the new
  1235.      altered message.  To provide real authentication, the sender has to
  1236.      encrypt (sign) the message digest with his secret key.  
  1237.       
  1238.      A message digest is calculated from the message by the sender.  The
  1239.      sender's secret key is used to encrypt the message digest and an
  1240.      electronic timestamp, forming a digital signature, or signature
  1241.      certificate.  The sender sends the digital signature along with the
  1242.      message.  The receiver receives the message and the digital
  1243.      signature, and recovers the original message digest from the digital
  1244.      signature by decrypting it with the sender's public key.  The
  1245.      receiver computes a new message digest from the message, and checks
  1246.      to see if it matches the one recovered from the digital signature.  If
  1247.      it matches, then that proves the message was not altered, and it came
  1248.      from the sender who owns the public key used to check the signature.
  1249.       
  1250.      A potential forger would have to either produce an altered message
  1251.      that produces an identical message digest (which is infeasible), or
  1252.      he would have to create a new digital signature from a different
  1253.      message digest (also infeasible, without knowing the true sender's
  1254.      secret key).
  1255.       
  1256.      Digital signatures prove who sent the message, and that the message
  1257.      was not altered either by error or design.  It also provides
  1258.      non-repudiation, which means the sender cannot easily disavow his
  1259.      signature on the message.
  1260.       
  1261.      Using message digests to form digital signatures has other advantages
  1262.      besides being faster than directly signing the entire actual message
  1263.      with the secret key.  Using message digests allows signatures to be
  1264.      of a standard small fixed size, regardless of the size of the actual
  1265.      message.  It also allows the software to check the message integrity
  1266.      automatically, in a manner similar to using checksums.  And it allows
  1267.      signatures to be stored separately from messages, perhaps even in a
  1268.      public archive, without revealing sensitive information about the
  1269.      actual messages, because no one can derive any message content from a
  1270.      message digest.
  1271.       
  1272.      The message digest algorithm used here is the MD5 Message Digest
  1273.      Algorithm, placed in the public domain by RSA Data Security, Inc.
  1274.      MD5's designer, Ronald Rivest, writes this about MD5:
  1275.       
  1276.      "It is conjectured that the difficulty of coming up with two messages
  1277.      having the same message digest is on the order of 2^64 operations,
  1278.      and that the difficulty of coming up with any message having a given
  1279.      message digest is on the order of 2^128 operations.  The MD5
  1280.      algorithm has been carefully scrutinized for weaknesses.  It is,
  1281.      however, a relatively new algorithm and further security analysis is
  1282.      of course justified, as is the case with any new proposal of this
  1283.  
  1284.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 24
  1285.  
  1286.  
  1287.      sort.  The level of security provided by MD5 should be sufficient for
  1288.      implementing very high security hybrid digital signature schemes
  1289.      based on MD5 and the RSA public-key cryptosystem."
  1290.       
  1291.       
  1292.       
  1293.      Compatibility with Previous Versions of PGP
  1294.      ===========================================
  1295.       
  1296.      I'm sorry, this version of PGP is not compatible with PGP version
  1297.      1.0.  If you have keys generated with version 1.0, you will have to
  1298.      generate new keys to use with this version.  This version of PGP uses
  1299.      all new algorithms for conventional cryptography, compression, and
  1300.      message digests, as well as using a much better approach to key
  1301.      management.  There were just too many changes to make it compatible
  1302.      with the old format messages, signatures, and keys.  Perhaps we could
  1303.      have provided a special conversion utility to convert old keys into
  1304.      new keys, but we were all tired and wanted to get the new release out
  1305.      the door.  Besides, converting the old keys into new keys would
  1306.      probably create more problems than it would solve, because we have
  1307.      changed to a new recommended uniform style for the user ID that
  1308.      includes the full name and E-mail address in a particular syntax.
  1309.       
  1310.      We made some effort to design the internal data structures of this
  1311.      version of PGP to be adaptable to future changes, so that hopefully
  1312.      you will not be required to discard and regenerate your keys in future
  1313.      versions.
  1314.       
  1315.       
  1316.  
  1317.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 25
  1318.  
  1319.  
  1320.       
  1321.      Vulnerabilities
  1322.      ===============
  1323.       
  1324.      No data security system is impenetrable.  PGP can be circumvented in
  1325.      a variety of ways.  In any data security system, you have to ask
  1326.      yourself if the information you are trying to protect is more
  1327.      valuable to your attacker than the cost of the attack.  This should
  1328.      lead you to protecting yourself from the cheapest attacks, while not
  1329.      worrying about the more expensive attacks.  
  1330.       
  1331.      Some of the discussion that follows may seem unduly paranoid, but
  1332.      such an attitude is appropriate for a reasonable discussion of
  1333.      vulnerability issues. 
  1334.       
  1335.       
  1336.      Compromised Pass Phrase and Secret Key
  1337.      --------------------------------------
  1338.       
  1339.      Probably the simplest attack is if you leave your pass phrase for
  1340.      your secret key written down somewhere.  If someone gets it and also
  1341.      gets your secret key file, they can read your messages and make
  1342.      signatures in your name.  
  1343.       
  1344.      Don't use obvious passwords that can be easily guessed, such as the
  1345.      names of your kids or spouse.  If you make your pass phrase a single
  1346.      word, it can be easily guessed by having a computer try all the words
  1347.      in the dictionary until it finds your password.  That's why a pass
  1348.      phrase is so much better than a password.  A more sophisticated
  1349.      attacker may have his computer scan a book of famous quotations to
  1350.      find your pass phrase.  An easy to remember but hard to guess pass
  1351.      phrase can be easily constructed by some creatively nonsensical
  1352.      sayings or very obscure literary quotes.  
  1353.       
  1354.      For further details, see the section "How to Protect Secret Keys from
  1355.      Disclosure" in the Essential Topics volume of the PGP User's Guide.
  1356.       
  1357.       
  1358.      Public Key Tampering
  1359.      --------------------
  1360.       
  1361.      A major vulnerability exists if public keys are tampered with.  This
  1362.      may be the most crucially important vulnerability of a public key
  1363.      cryptosystem, in part because most novices don't immediately
  1364.      recognize it.  The importance of this vulnerability, and appropriate
  1365.      hygienic countermeasures, are detailed in the section "How to Protect
  1366.      Public Keys from Tampering" in the Essential Topics volume.    
  1367.       
  1368.      To summarize:  When you use someone's public key, make certain it has
  1369.      not been tampered with.  A new public key from someone else should be
  1370.      trusted only if you got it directly from its owner, or if it has been
  1371.      signed by someone you trust.  Make sure no one else can tamper with
  1372.      your own public key ring.  Maintain physical control of both your
  1373.      public key ring and your secret key ring, preferably on your own
  1374.      personal computer rather than on a remote timesharing system.  Keep a
  1375.      backup copy of both key rings.
  1376.  
  1377.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 26
  1378.  
  1379.  
  1380.       
  1381.       
  1382.      "Not Quite Deleted" Files
  1383.      -------------------------
  1384.       
  1385.      Another potential security problem is caused by how most operating
  1386.      systems delete files.  When you encrypt a file and then delete the
  1387.      original plaintext file, the operating system doesn't actually
  1388.      physically erase the data.  It merely marks those disk blocks as
  1389.      deleted, allowing the space to be reused later.  It's sort of like
  1390.      discarding sensitive paper documents in the paper recycling bin
  1391.      instead of the paper shredder.  The disk blocks still contain the
  1392.      original sensitive data you wanted to erase, and will probably
  1393.      eventually be overwritten by new data at some point in the future. 
  1394.      If an attacker reads these deleted disk blocks soon after they have
  1395.      been deallocated, he could recover your plaintext. 
  1396.       
  1397.      In fact this could even happen accidentally, if for some reason
  1398.      something went wrong with the disk and some files were accidentally
  1399.      deleted or corrupted.  A disk recovery program may be run to recover
  1400.      the damaged files, but this often means some previously deleted files
  1401.      are resurrected along with everything else.  Your confidential files
  1402.      that you thought were gone forever could then reappear and be
  1403.      inspected by whomever is attempting to recover your damaged disk.  
  1404.      Even while you are creating the original message with a word
  1405.      processor or text editor, the editor may be creating multiple
  1406.      temporary copies of your text on the disk, just because of its
  1407.      internal workings.  These temporary copies of your text are deleted
  1408.      by the word processor when it's done, but these sensitive fragments
  1409.      are still on your disk somewhere.  
  1410.       
  1411.      Let me tell you a true horror story.  I had a friend, married with
  1412.      young children, who once had a brief and not very serious affair. 
  1413.      She wrote a letter to her lover on her word processor, and deleted
  1414.      the letter after she sent it.  Later, after the affair was over, the
  1415.      floppy disk got damaged somehow and she had to recover it because it
  1416.      contained other important documents.  She asked her husband to
  1417.      salvage the disk, which seemed perfectly safe because she knew she
  1418.      had deleted the incriminating letter.  Her husband ran a commercial
  1419.      disk recovery software package to salvage the files.  It recovered
  1420.      the files alright, including the deleted letter.  He read it, which 
  1421.      set off a tragic chain of events.  
  1422.       
  1423.      The only way to prevent the plaintext from reappearing is to somehow
  1424.      cause the deleted plaintext files to be overwritten.  Unless you know
  1425.      for sure that all the deleted disk blocks will soon be reused, you
  1426.      must take positive steps to overwrite the plaintext file, and also
  1427.      any fragments of it on the disk left by your word processor.  You can
  1428.      overwrite the original plaintext file after encryption by using the
  1429.      PGP -w (wipe) option.  You can take care of any fragments of the
  1430.      plaintext left on the disk by using any of the disk utilities
  1431.      available that can overwrite all of the unused blocks on a disk.  For
  1432.      example, the Norton Utilities for MSDOS can do this.
  1433.       
  1434.       
  1435.      Viruses and Trojan Horses
  1436.  
  1437.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 27
  1438.  
  1439.  
  1440.      -------------------------
  1441.       
  1442.      Another attack could involve a specially-tailored hostile computer
  1443.      virus or worm that might infect PGP or your operating system.  This
  1444.      hypothetical virus could be designed to capture your pass phrase or
  1445.      secret key or deciphered messages, and covertly write the captured
  1446.      information to a file or send it through a network to the virus's
  1447.      owner.  Or it might alter PGP's behavior so that signatures are not
  1448.      properly checked.  This attack is cheaper than cryptanalytic attacks.
  1449.       
  1450.      Defending against this falls under the category of defending against
  1451.      viral infection generally.  There are some moderately capable
  1452.      anti-viral products commercially available, and there are hygienic
  1453.      procedures to follow that can greatly reduce the chances of viral
  1454.      infection.  A complete treatment of anti-viral and anti-worm
  1455.      countermeasures is beyond the scope of this document.  PGP has no
  1456.      defenses against viruses, and assumes your own personal computer is a
  1457.      trustworthy execution environment.  If such a virus or worm actually
  1458.      appeared, hopefully word would soon get around warning everyone.  
  1459.       
  1460.      Another similar attack involves someone creating a clever imitation
  1461.      of PGP that behaves like PGP in most respects, but doesn't work the
  1462.      way it's supposed to.  For example, it might be deliberately crippled
  1463.      to not check signatures properly, allowing bogus key certificates to
  1464.      be accepted.  This "Trojan horse" version of PGP is not hard for an
  1465.      attacker to create, because PGP source code is widely available, so
  1466.      anyone could modify the source code and produce a lobotomized zombie
  1467.      imitation PGP that looks real but does the bidding of its diabolical
  1468.      master.  This Trojan horse version of PGP could then be widely
  1469.      circulated, claiming to be from me.  How insidious.
  1470.       
  1471.      You should make an effort to get your copy of PGP from a reliable
  1472.      source, whatever that means.  Or perhaps from more than one
  1473.      independent source, and compare them with a file comparison utility.
  1474.       
  1475.      There are other ways to check PGP for tampering, using digital
  1476.      signatures.  If someone you trust signs the executable version of
  1477.      PGP, vouching for the fact that it has not been infected or tampered
  1478.      with, you can be reasonably sure that you have a good copy.  You
  1479.      could use an earlier trusted version of PGP to check the signature on
  1480.      a later suspect version of PGP.  But this will not help at all if
  1481.      your operating system is infected, nor will it detect if your
  1482.      original copy of PGP.EXE has been maliciously altered in such a way
  1483.      as to compromise its own ability to check signatures.  This test also
  1484.      assumes that you have a good trusted copy of the public key that you
  1485.      use to check the signature on the PGP executable.
  1486.       
  1487.       
  1488.      Physical Security Breach
  1489.      ------------------------
  1490.       
  1491.      A physical security breach may allow someone to physically acquire
  1492.      your plaintext files or printed messages.  A determined opponent
  1493.      might accomplish this through burglary, trash-picking, unreasonable
  1494.      search and seizure, or bribery, blackmail or infiltration of your
  1495.      staff.  Some of these attacks may be especially feasible against
  1496.  
  1497.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 28
  1498.  
  1499.  
  1500.      grassroots political organizations that depend on a largely volunteer
  1501.      staff.  It has been widely reported in the press that the FBI's
  1502.      COINTELPRO program used burglary, infiltration, and illegal bugging
  1503.      against antiwar and civil rights groups.  And look what happened at
  1504.      the Watergate Hotel.  
  1505.       
  1506.      Don't be lulled into a false sense of security just because you have
  1507.      a cryptographic tool.  Cryptographic techniques protect data only
  1508.      while it's encrypted-- direct physical security violations can still
  1509.      compromise plaintext data or written or spoken information.  
  1510.       
  1511.      This kind of attack is cheaper than cryptanalytic attacks on PGP.
  1512.       
  1513.       
  1514.      Tempest Attacks
  1515.      ---------------
  1516.       
  1517.      Another kind of attack that has been used by well-equipped opponents
  1518.      involves the remote detection of the electromagnetic signals from
  1519.      your computer.  This expensive and somewhat labor-intensive attack is
  1520.      probably still cheaper than direct cryptanalytic attacks.  An
  1521.      appropriately instrumented van can park near your office and remotely
  1522.      pick up all of your keystrokes and messages displayed on your
  1523.      computer video screen.  This would compromise all of your passwords,
  1524.      messages, etc.  This attack can be thwarted by properly shielding all
  1525.      of your computer equipment and network cabling so that it does not
  1526.      emit these signals.  This shielding technology is known as "Tempest",
  1527.      and is used by some Government agencies and defense contractors.  
  1528.      There are hardware vendors who supply Tempest shielding commercially,
  1529.      although it may be subject to some kind of Government licensing.  Now
  1530.      why do you suppose the Government would restrict access to Tempest
  1531.      shielding?
  1532.       
  1533.       
  1534.      Exposure on Multi-user Systems
  1535.      ------------------------------
  1536.       
  1537.      PGP was originally designed for a single-user MSDOS machine under
  1538.      your direct physical control.  I run PGP at home on my own PC, and
  1539.      unless someone breaks into my house or monitors my electromagnetic
  1540.      emissions, they probably can't see my plaintext files or secret keys. 
  1541.       
  1542.      But now PGP also runs on multi-user systems such as Unix and VAX/VMS.
  1543.      On multi-user systems, there are much greater risks of your plaintext
  1544.      or keys or passwords being exposed.  The Unix system administrator or
  1545.      a clever intruder can read your plaintext files, or perhaps even use
  1546.      special software to covertly monitor your keystrokes or read what's
  1547.      on your screen.  On a Unix system, any other user can read your
  1548.      environment information remotely by simply using the Unix "ps"
  1549.      command.  Similar problems exist for MSDOS machines connected on a
  1550.      local area network.  The actual security risk is dependent on your
  1551.      particular situation.  Some multi-user systems may be safe because
  1552.      all the users are trusted, or because they have system security
  1553.      measures that are safe enough to withstand the attacks available to
  1554.      the intruders, or because there just aren't any sufficiently
  1555.      interested intruders.  Some Unix systems are safe because they are
  1556.  
  1557.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 29
  1558.  
  1559.  
  1560.      only used by one user-- there are even some notebook computers
  1561.      running Unix.  It would be unreasonable to simply exclude PGP from
  1562.      running on all Unix systems.
  1563.       
  1564.      PGP is not designed to protect your data while it is in plaintext
  1565.      form on a compromised system.  Nor can it prevent an intruder from
  1566.      using sophisticated measures to read your secret key while it is
  1567.      being used.  You will just have to recognize these risks on
  1568.      multi-user systems, and adjust your expectations and behavior
  1569.      accordingly.  Perhaps your situation is such that you should consider
  1570.      only running PGP on an isolated single-user system under your direct
  1571.      physical control.  That's what I do, and that's what I recommend.
  1572.       
  1573.       
  1574.      Traffic Analysis
  1575.      ----------------
  1576.       
  1577.      Even if the attacker cannot read the contents of your encrypted
  1578.      messages, he may be able to infer at least some useful information by
  1579.      observing where the messages come from and where they are going, the
  1580.      size of the messages, and the time of day the messages are sent. 
  1581.      This is analogous to the attacker looking at your long distance phone
  1582.      bill to see who you called and when and for how long, even though the
  1583.      actual content of your calls is unknown to the attacker.  This is
  1584.      called traffic analysis.  PGP alone does not protect against traffic
  1585.      analysis.  Solving this problem would require specialized 
  1586.      communication protocols designed to reduce exposure to traffic
  1587.      analysis in your communication environment, possibly with some
  1588.      cryptographic assistance.
  1589.       
  1590.       
  1591.      Cryptanalysis
  1592.      -------------
  1593.       
  1594.      An expensive and formidable cryptanalytic attack could possibly be
  1595.      mounted by someone with vast supercomputer resources, such as a
  1596.      Government intelligence agency.  They might crack your RSA key by
  1597.      using some new secret factoring breakthrough.  Perhaps so, but it is
  1598.      noteworthy that the US Government trusts the RSA algorithm enough in
  1599.      some cases to use it to protect its own nuclear weapons, according to
  1600.      Ron Rivest.  And civilian academia has been intensively attacking it
  1601.      without success since 1978. 
  1602.       
  1603.      Perhaps the Government has some classified methods of cracking the
  1604.      IDEA(tm) conventional encryption algorithm used in PGP.  This is
  1605.      every cryptographer's worst nightmare.  There can be no absolute
  1606.      security guarantees in practical cryptographic implementations.  
  1607.       
  1608.      Still, some optimism seems justified.  The IDEA algorithm's designers
  1609.      are among the best cryptographers in Europe.  It has had extensive
  1610.      security analysis and peer review from some of the best cryptanalysts
  1611.      in the unclassified world.  It appears to have some design advantages
  1612.      over the DES in withstanding differential cryptanalysis, which has
  1613.      been used to crack the DES.  
  1614.       
  1615.      Besides, even if this algorithm has some subtle unknown weaknesses,
  1616.  
  1617.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 30
  1618.  
  1619.  
  1620.      PGP compresses the plaintext before encryption, which should greatly
  1621.      reduce those weaknesses.  The computational workload to crack it is
  1622.      likely to be much more expensive than the value of the message.
  1623.       
  1624.      If your situation justifies worrying about very formidable attacks of
  1625.      this caliber, then perhaps you should contact a data security
  1626.      consultant for some customized data security approaches tailored to
  1627.      your special needs.  Boulder Software Engineering, whose address and
  1628.      phone are given at the end of this document, can provide such
  1629.      services.
  1630.       
  1631.       
  1632.      In summary, without good cryptographic protection of your data
  1633.      communications, it may have been practically effortless and perhaps
  1634.      even routine for an opponent to intercept your messages, especially
  1635.      those sent through a modem or E-mail system.  If you use PGP and
  1636.      follow reasonable precautions, the attacker will have to expend far
  1637.      more effort and expense to violate your privacy. 
  1638.       
  1639.      If you protect yourself against the simplest attacks, and you feel
  1640.      confident that your privacy is not going to be violated by a
  1641.      determined and highly resourceful attacker, then you'll probably be
  1642.      safe using PGP.  PGP gives you Pretty Good Privacy.
  1643.       
  1644.       
  1645.  
  1646.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 31
  1647.  
  1648.  
  1649.       
  1650.      Legal Issues
  1651.      ============
  1652.       
  1653.       
  1654.      Trademarks, Copyrights, and Warranties
  1655.      --------------------------------------
  1656.       
  1657.      "Pretty Good Privacy", "Phil's Pretty Good Software", and the "Pretty
  1658.      Good" label for computer software and hardware products are all
  1659.      trademarks of Philip Zimmermann and Phil's Pretty Good Software.  PGP
  1660.      is (c) Copyright Philip R. Zimmermann, 1990-1992.  Philip Zimmermann
  1661.      also holds the copyright for the PGP User's Manual, as well as any
  1662.      foreign language translations of the manual or the software.
  1663.       
  1664.      The author assumes no liability for damages resulting from the use of
  1665.      this software, even if the damage results from defects in this
  1666.      software, and makes no representations concerning the merchantability
  1667.      of this software or its suitability for any specific purpose.  It is
  1668.      provided "as is" without express or implied warranty of any kind.
  1669.       
  1670.       
  1671.      Patent Rights on the Algorithms
  1672.      -------------------------------
  1673.       
  1674.      When I first released PGP, I half-expected to encounter some form of
  1675.      legal harassment from the Government.  Indeed, there has been legal 
  1676.      harrassment, but it hasn't come from the Government-- it has come
  1677.      from a private corporation.
  1678.       
  1679.      The RSA public key cryptosystem was developed at MIT with Federal
  1680.      funding from grants from the National Science Foundation and the
  1681.      Navy.  It is patented by MIT (U.S. patent #4,405,829, issued 20 Sep
  1682.      1983).  A company in California called Public Key Partners (PKP) holds
  1683.      the exclusive commercial license to sell and sub-license the RSA
  1684.      public key cryptosystem.  The author of this software implementation
  1685.      of the RSA algorithm is providing this implementation for educational
  1686.      use only.  Licensing this algorithm from PKP is the responsibility of
  1687.      you, the user, not Philip Zimmermann, the author of this software
  1688.      implementation.  The author assumes no liability for any patent
  1689.      infringement that may result from the unlicensed use by the user of
  1690.      the underlying RSA algorithm used in this software.  Foreign users
  1691.      should note that the RSA patent does not apply outside the US, and
  1692.      there is no RSA patent in any other country.  Federal agencies may
  1693.      use it because the Government paid for the development of RSA.  
  1694.       
  1695.      Unfortunately, PKP is not offering any licensing of their RSA patent
  1696.      to end users of PGP.  This essentially makes PGP contraband in the
  1697.      USA.  Jim Bidzos, president of PKP, threatened to take legal action
  1698.      against me unless I stop distributing PGP, until they can devise a
  1699.      licensing scheme for it.  I agreed to this, since PGP is already in
  1700.      wide circulation and waiting a while for a licensing arrangement from
  1701.      PKP seemed reasonable.  Mr. Bidzos assured me (he even used the word
  1702.      "promise") several times since the initial 5 June 91 release of PGP
  1703.      that they were working on a licensing scheme for PGP.  Apparently, my
  1704.      release of PGP helped provide the impetus for them to offer some sort
  1705.  
  1706.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 32
  1707.  
  1708.  
  1709.      of a freeware-style license for noncommercial use of the RSA
  1710.      algorithm.  However, in December 1991 Mr. Bidzos said he had no plans
  1711.      to ever license the RSA algorithm to PGP users, and denied ever
  1712.      implying that he would.  Meanwhile, I have continued to refrain from
  1713.      distributing PGP, although I've recently updated the PGP User's
  1714.      Guide, and have provided a lot of design guidance for these new 
  1715.      revisions of PGP.
  1716.       
  1717.      I wrote my PGP software from scratch, with my own implementation of
  1718.      the RSA algorithm.  I didn't steal any software from PKP.  Before
  1719.      publishing PGP, I got a formal written legal opinion from a patent
  1720.      attorney with extensive experience in software patents.  I'm
  1721.      convinced that publishing PGP the way I did does not violate patent
  1722.      law.  However, it is a well known axiom in the US legal system that
  1723.      regardless of the law, he with the most money and lawyers prevails, 
  1724.      if not by actually winning then by crushing the little guy with legal
  1725.      expenses.  
  1726.       
  1727.      Not only did PKP acquire the exclusive patent rights for the RSA
  1728.      cryptosystem, which was developed with your tax dollars, but they 
  1729.      also somehow acquired the exclusive rights to three other patents
  1730.      covering rival public key schemes invented by others, also developed
  1731.      with your tax dollars.  This essentially gives one company a legal
  1732.      lock in the USA on nearly all practical public key cryptosystems. 
  1733.      They even appear to be claiming patent rights on the very concept of
  1734.      public key cryptography, regardless of what clever new original
  1735.      algorithms are independently invented by others.  And you thought
  1736.      patent law was designed to encourage innovation!  PKP does not
  1737.      actually develop any software-- they don't even have an engineering
  1738.      department-- they are essentially a litigation company.  
  1739.       
  1740.      Public key cryptography is destined to become a crucial technology in
  1741.      the protection of our civil liberties and privacy in our increasingly
  1742.      connected society.  Why should the Government try to limit access to 
  1743.      this key technology, when a single monopoly can do it for them?  
  1744.       
  1745.      It appears certain that there will be future releases of PGP,
  1746.      regardless of the outcome of licensing problems with Public Key
  1747.      Partners.  If PKP does not license PGP, then future releases of PGP
  1748.      might not come from me.  There are countless fans of PGP outside the
  1749.      US, and many of them are software engineers who want to improve PGP
  1750.      and promote it, regardless of what I do.  The second release of PGP
  1751.      was a joint effort of an international team of software engineers,
  1752.      implementing enhancements to the original PGP with design guidance
  1753.      from me.  It is being released by Peter Gutmann in New Zealand, out
  1754.      of reach of US patent law.  It is being released only in Europe and
  1755.      New Zealand, but it may spontaneously spread to the USA without any
  1756.      help from me or the PGP development team.
  1757.       
  1758.      The IDEA(tm) conventional block cipher used by PGP is covered by a
  1759.      patent in Europe, held by ETH and a Swiss company called Ascom-Tech
  1760.      AG.  The patent number is PCT/CH91/00117.  International patents are
  1761.      pending.  IDEA(tm) is a trademark of Ascom-Tech AG.  There is no
  1762.      license fee required for noncommercial use.  Commercial users may
  1763.      obtain licensing details from Dieter Profos, Ascom Tech AG, Solothurn
  1764.      Lab, Postfach 151, 4502 Solothurn, Switzerland, Tel +41 65 242885,
  1765.  
  1766.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 33
  1767.  
  1768.  
  1769.      Fax +41 65 235761.
  1770.       
  1771.      The ZIP compression routines in PGP come from freeware source code,
  1772.      with the author's permission.  I'm not aware of any patents on the
  1773.      ZIP algorithm, but you're welcome to check into that question
  1774.      yourself.  If there are any obscure patent claims that apply to ZIP,
  1775.      then sorry, you'll have to take care of the patent licensing, not me.
  1776.       
  1777.      All this patent stuff reminds me of a Peanuts cartoon I saw in the
  1778.      newspaper where Lucy showed Charlie Brown a fallen autumn leaf and
  1779.      said "This is the first leaf to fall this year."  Charlie Brown said,
  1780.      "How do you know that?  Leaves have been falling for weeks."  Lucy
  1781.      replied, "I had this one notarized."
  1782.       
  1783.       
  1784.      Licensing and Distribution
  1785.      --------------------------
  1786.       
  1787.      In the USA PKP controls, through US patent law, the licensing of the
  1788.      RSA algorithm.  But I have no objection to anyone freely using or
  1789.      distributing my PGP software, without payment of fees to me.  You must
  1790.      keep the copyright notices on PGP and keep this documentation with
  1791.      it.  However, if you live in the USA, this may not satisfy any legal
  1792.      obligations you may have to PKP for using the RSA algorithm as
  1793.      mentioned above.  
  1794.       
  1795.      In fact, if you live in the USA, and you are not a Federal agency, 
  1796.      you shouldn't actually run PGP on your computer, because Public Key
  1797.      Partners wants to forbid you from running my software.  PGP is
  1798.      contraband.  
  1799.       
  1800.      Of course, I can't give any assurances, but my guess is that it seems
  1801.      unlikely that PKP would waste their time pursuing PGP end users for
  1802.      patent infringement.  There are just too many PGP users to go after. 
  1803.      And why would they single you out?  But I certainly wouldn't want to
  1804.      imply that you do anything improper-- if PKP were offering licenses,
  1805.      I would urge you to obtain one.  But since they aren't, well, I guess
  1806.      you should just refrain from using PGP if you live in the USA.  
  1807.       
  1808.      PGP is not shareware, it's freeware.  Forbidden freeware.  Published
  1809.      as a community service.  If I sold PGP for money, then I would get
  1810.      sued by PKP for using their RSA algorithm.  More importantly, giving
  1811.      PGP away for free will encourage far more people to use it, which
  1812.      hopefully will have a greater social impact.  This could lead to
  1813.      widespread awareness and use of the RSA public key cryptosystem,
  1814.      which will probably make more money for PKP in the long run.  If only
  1815.      they could see that.  
  1816.       
  1817.      All the source code for PGP is available for free under the "Copyleft" 
  1818.      General Public License from the Free Software Foundation (FSF).  A
  1819.      copy of the FSF General Public License is included in the source
  1820.      release package of PGP.
  1821.       
  1822.      Regardless of and perhaps contrary to some provisions of the FSF
  1823.      General Public License, the following terms apply:
  1824.       
  1825.  
  1826.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 34
  1827.  
  1828.  
  1829.      1)  Written discussions of PGP in magazines or books may include
  1830.          fragments of PGP source code and documentation, without 
  1831.          restrictions.
  1832.       
  1833.      2)  Although the FSF General Public License allows non-proprietary
  1834.          derivative products, it prohibits proprietary derivative products. 
  1835.          Despite this, I may grant you a special license if you want to 
  1836.          derive a proprietary commercial product from some of PGP's parts.  
  1837.          There may or may not be a fee depending on what kind of a deal you 
  1838.          plan to pursue with PKP.  Retaining my copyright notice and 
  1839.          attribution might suffice in some cases.  Give me a call and we'll 
  1840.          discuss it.  I'm real easy to please.
  1841.       
  1842.      Feel free to disseminate the complete PGP release package as widely
  1843.      as possible.  Give it to all your friends.  If you have access to any
  1844.      electronic Bulletin Boards Systems, please upload the complete PGP
  1845.      executable object release package to as many BBS's as possible.  You
  1846.      may disseminate the PGP source release package too, if you've got
  1847.      it.  The PGP version 2.0 executable object release package for MSDOS
  1848.      contains the PGP executable software, documentation, sample key rings
  1849.      including my own public key, and signatures for the software and this
  1850.      manual, all in one PKZIP compressed file called PGP20.ZIP.  The PGP
  1851.      source release package for MSDOS contains all the C source files in
  1852.      one PKZIP compressed file called PGP20SRC.ZIP.
  1853.       
  1854.      You may obtain free copies or updates to PGP from thousands of BBS's
  1855.      worldwide or from other public sources such as Internet FTP sites. 
  1856.      Don't ask me for a copy directly from me, since I'd rather avoid
  1857.      further legal problems with PKP at this time.  I might be able to
  1858.      tell you where you can get it, however.  
  1859.       
  1860.      After all this work I have to admit I wouldn't mind getting some fan
  1861.      mail for PGP, to gauge its popularity.  Let me know what you think
  1862.      about it and how many of your friends use it.  Bug reports and
  1863.      suggestions for enhancing PGP are welcome, too.  Perhaps a future PGP
  1864.      release will reflect your suggestions.  
  1865.       
  1866.      This project has not been funded and the project has nearly eaten me
  1867.      alive.  This means you can't count on a reply to your mail, unless
  1868.      you only need a short written reply and you include a stamped
  1869.      self-addressed envelope.  But I do reply to E-mail.  Please keep it in
  1870.      English, as my foreign language skills are weak.  If you call and I'm
  1871.      not in, it's best to just try again later.  I usually don't return
  1872.      long distance phone calls, unless you leave a message that I can call
  1873.      you collect.  If you need any significant amount of my time, I am
  1874.      available on a paid consulting basis, and I do return those calls.
  1875.       
  1876.      The most inconvenient mail I get is for some well-intentioned person
  1877.      to send me a few dollars asking me for a copy of PGP.  I can't send
  1878.      it to them because of the legal threats from PKP (or worse--
  1879.      sometimes these requests are from foreign countries, and I would be
  1880.      risking violating cryptographic export control laws).  Even if there
  1881.      were no legal hassles involved in sending PGP to them, they usually
  1882.      don't send enough money to make it worth my time ($50 might be worth
  1883.      my time if I were actually selling this stuff).  I'm just not set up
  1884.      as a low cost low volume mail order business.  I can't just ignore
  1885.  
  1886.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 35
  1887.  
  1888.  
  1889.      the request and keep the money, because they probably regard the
  1890.      money as a fee for me to fulfill their request.  If I return the
  1891.      money, I might have to get in my car and drive down to the post
  1892.      office and buy some postage stamps, because these requests rarely
  1893.      include a stamped self-addressed envelope.  And I have to take the
  1894.      time to write a polite reply that I can't do it.  If I postpone the
  1895.      reply and set the letter down on my desk, it might be buried within
  1896.      minutes and won't see the light of day again for months.  Multiply
  1897.      these minor inconveniences by the number of requests I get, and you
  1898.      can see the problem.  Isn't it enough that the software is free?  It
  1899.      would be nicer if people could try to get PGP from any of the myriad
  1900.      other sources.  If you don't have a modem, ask a friend to get it for
  1901.      you.  If you can't find it yourself, I don't mind answering a quick
  1902.      phone call. 
  1903.       
  1904.      If anyone wants to volunteer to improve PGP, please let me know.  It
  1905.      could certainly use some more work.  Some features were deferred to
  1906.      get it out the door.  A number of PGP users have since donated their
  1907.      time to port PGP to Unix on Sun SPARCstations, to Ultrix, to VAX/VMS,
  1908.      to OS/2, to the Amiga, and to the Atari ST.  Perhaps you can help
  1909.      port it to some new environments, such as the Apple Macintosh, MS
  1910.      Windows, X windows, or XVT.  But please let me know if you plan to
  1911.      port PGP, to avoid duplication of effort, and to avoid starting with
  1912.      an obsolete version of the source code.  
  1913.       
  1914.      Future versions of PGP may have to change the data formats for
  1915.      messages, signatures, keys and key rings, in order to provide
  1916.      important new features.  This may cause backward compatibility
  1917.      problems with this version of PGP.  Future releases may provide
  1918.      conversion utilities to convert old keys, but you may have to dispose
  1919.      of old messages created with the old PGP.
  1920.       
  1921.       
  1922.      Export Controls
  1923.      ---------------
  1924.       
  1925.      The Government has made it illegal in many cases to export good
  1926.      cryptographic technology, and that may include PGP.  They regard this
  1927.      kind of software as munitions.  This is determined by volatile State
  1928.      Department policies, not fixed laws.  I will not export this software
  1929.      out of the US or Canada in cases when it is illegal to do so under US
  1930.      State Department policies, and I assume no responsibility for other
  1931.      people exporting it on their own.
  1932.       
  1933.      If you live outside the US or Canada, I advise you not to violate US
  1934.      State Department policies by getting PGP from a US source.  Since
  1935.      thousands of domestic users got it after its initial publication, it
  1936.      somehow leaked out of the US and spread itself widely abroad, like
  1937.      dandelion seeds blowing in the wind.  If PGP has already found its
  1938.      way into your country, then I don't think you're violating US export
  1939.      law if you pick it up from a source outside of the US.  And there are
  1940.      no import restrictions on bringing cryptographic technology into the
  1941.      USA.
  1942.       
  1943.      Some foreign governments impose serious penalties on anyone inside
  1944.      their country using encrypted communications.  In some countries they
  1945.  
  1946.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 36
  1947.  
  1948.  
  1949.      might even shoot you for that.  
  1950.       
  1951.       
  1952.       
  1953.  
  1954.      PGPDOC2.TXT          Thursday, September  3, 1992 2:07 am           Page 37
  1955.  
  1956.  
  1957.       
  1958.      Recommended Introductory Readings
  1959.      =================================
  1960.       
  1961.      1)  Dorothy Denning, "Cryptography and Data Security", Addison-Wesley,
  1962.          Reading, MA 1982
  1963.      2)  Dorothy Denning, "Protecting Public Keys and Signature Keys",
  1964.          IEEE Computer, Feb 1983
  1965.      3)  Martin E. Hellman, "The Mathematics of Public-Key Cryptography," 
  1966.          Scientific American, August 1979
  1967.      4)  Philip Zimmermann, "A Proposed Standard Format for RSA 
  1968.          Cryptosystems", IEEE Computer, Sep 1986
  1969.       
  1970.      Other Readings
  1971.      ==============
  1972.       
  1973.      5)  Ronald Rivest, "The MD5 Message Digest Algorithm", MIT Laboratory
  1974.          for Computer Science, 1991
  1975.      6)  Xuejia Lai, "On the Design and Security of Block Ciphers", 
  1976.          Institute for Signal and Information Processing, ETH-Zentrum, 
  1977.          Zurich, Switzerland, 1992
  1978.      7)  Xuejia Lai, James L. Massey, Sean Murphy, "Markov Ciphers and 
  1979.          Differential Cryptanalysis", Advances in Cryptology- EUROCRYPT'91
  1980.       
  1981.       
  1982.       
  1983.      To Contact the Author
  1984.      =====================
  1985.       
  1986.      Philip Zimmermann may be reached at:
  1987.       
  1988.      Boulder Software Engineering
  1989.      3021 Eleventh Street
  1990.      Boulder, Colorado 80304  USA
  1991.      Phone 303-541-0140 (voice or FAX)  (10:00am - 7:00pm Mountain Time)
  1992.      Internet:  prz@sage.cgd.ucar.edu
  1993.       
  1994.       
  1995.